[Imprint][Data Privacy Statement][E-Mail]

Back to main index. View the specification. View theorem base summary, View theorem base listing, the used properties by spec, the dependency list, the symbol table,

Specification decimal-simple-ops
enrich
   decimal
with
   

   
   constants  0_dec : decimal;
              1_dec : decimal;
   functions  . + . : decimal × decimal → decimal;
              . - . : decimal × decimal → decimal prio 8 left;
              . * . : decimal × decimal → decimal prio 10 right;
              ~ . : decimal → decimal;
              abs : decimal → decimal;
   predicates  . < . : decimal × decimal;
               . ≤ . : decimal × decimal;
               . > . : decimal × decimal;
               . ≥ . : decimal × decimal;
   
   
   
   

   

   axioms zero-def :  ⊦ 0_dec = mkDecimal(0, 0);
          used for: s, ls;
          one-def :  ⊦ 1_dec = mkDecimal(1, 0);
          add-def :  ⊦ dec_i + dec_j = mkDecimal(dec_i.int * 10 ^ dec_j.scale + dec_j.int * 10 ^ dec_i.scale, dec_i.scale + dec_j.scale);
          sub-def :  ⊦ dec_i - dec_j = mkDecimal(dec_i.int * 10 ^ dec_j.scale - dec_j.int * 10 ^ dec_i.scale, dec_i.scale + dec_j.scale);
          mult-def :  ⊦ dec_i * dec_j = mkDecimal(dec_i.int * dec_j.int, dec_i.scale + dec_j.scale);
          neg-def :  ⊦ ~ dec_i = mkDecimal(~ dec_i.int, dec_i.scale);
          abs-def :  ⊦ abs(dec_i) = mkDecimal(abs(dec_i.int), dec_i.scale);
          ls-def :  ⊦ dec_i < dec_j ↔ (dec_i - dec_j).int < 0;
          le-def :  ⊦ dec_i ≤ dec_j ↔ ¬ dec_j < dec_i;
          gr-def :  ⊦ dec_i > dec_j ↔ dec_j < dec_i;
          used for: s, ls;
          ge-def :  ⊦ dec_i ≥ dec_j ↔ ¬ dec_i < dec_j;
          used for: s, ls;

   

   
end enrich